package javaman.gestor;

import java.util.Collection;

import javaman.dao.ClaseDao;
import javaman.dao.PagoClaseDao;
import javaman.exceptions.ClaseDaoException;
import javaman.exceptions.PagoClaseDaoException;
import javaman.factory.ClaseDaoFactory;
import javaman.factory.PagoClaseDaoFactory;
import javaman.modelo.Clase;
import javaman.modelo.PagoClase;

public class GestorPagoClase {

	PagoClaseDao pagoClaseDao = PagoClaseDaoFactory.create();
	ClaseDao claseDao = ClaseDaoFactory.create();
	
	public String registrarPagoEstudiante(PagoClase pagoClase){
		
		String resultado = validarDatosPagoClase(pagoClase);
		
		if(resultado.equals("OK")) {
			
			try {
			
				Clase clase = claseDao.findByPrimaryKey(pagoClase.getIdclase());
				
				if(clase != null) {
					pagoClaseDao.insert(pagoClase);
				} else {
					return "[Mensaje][No existe la clase]";
				}
			} catch (PagoClaseDaoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return "[Mensaje][Se produjo una excepcion registrando el pago de la clase]";
			} catch (ClaseDaoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				return "[Mensaje][Se produjo una excepcion buscando la clase con el identificador "+pagoClase.getIdclase()+"]";
			}
		}
		
		return resultado;
	}
	
	public String validarDatosPagoClase(PagoClase pagoClase) {
	
		if(pagoClase.getIdclase() == 0) return "[Mensaje][Ingrese su el identificador de Clase]";
		
	    if(pagoClase.getIdmodalidad() == 0)return "[Mensaje][Ingrese la modalidad de pago]";
 
	    if(pagoClase.getMonto() == 0)return "[Mensaje][Ingrese un monto valido]";
		
		return "OK";
	}
	
	public Collection<PagoClase> buscarPagoPorEstudiante(String where) {
		
		Collection<PagoClase> pagoClases = null;
		try {
			pagoClases = pagoClaseDao.buscarPagosPorEstudiante(where);
		} catch (PagoClaseDaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return pagoClases;
	}
	
		
}
